import { Matrix3, Matrix4 } from 'cesium';

/**
 * 将标量乘以 Matrix3 矩阵
 * @param scalar 标量值
 * @param matrix Cesium Matrix3 对象
 * @returns 返回标量乘以矩阵后的新 Matrix3 对象
 */
export const multiplyScalarWithMatrix3 = (scalar: number, matrix: Matrix3): Matrix3 => {
    // 将矩阵转换为数组
    const matrixArray = Matrix3.toArray(matrix);
    // 遍历数组的每个元素，乘以标量
    const resultArray = matrixArray.map(value => value * scalar);
    // 使用新数组创建并返回一个新的 Matrix3 对象
    return Matrix3.fromArray(resultArray);
};

/**
 * 将标量乘以 Matrix4 矩阵
 * @param scalar 标量值
 * @param matrix Cesium Matrix4 对象
 * @returns 返回标量乘以矩阵后的新 Matrix4 对象
 */
export const multiplyScalarWithMatrix4 = (scalar: number, matrix: Matrix4): Matrix4 => {
    // 将矩阵转换为数组
    const matrixArray = Matrix4.toArray(matrix);
    // 遍历数组的每个元素，乘以标量
    const resultArray = matrixArray.map(value => value * scalar);
    // 使用新数组创建并返回一个新的 Matrix4 对象
    return Matrix4.fromArray(resultArray);
};
